package com.jixi.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jixi.common.result.PageResult;
import com.jixi.common.result.Result;
import com.jixi.pojo.dto.CompanyRegisterDto;
import com.jixi.pojo.entity.Company;

public interface CompanyService extends IService<Company> {
	
	/**
	 * 注册餐饮公司
	 *
	 * @param companyRegisterDto 注册信息
	 * @return 注册结果
	 */
	Result companyRegister(CompanyRegisterDto companyRegisterDto);

	/**
	 * 获取餐饮公司列表
	 *
	 * @param pageNum       页码
	 * @param pageSize      每页数量
	 * @param companyName   公司名
	 * @param principalName 负责人名
	 * @param status        公司状态
	 * @return 公司列表
	 */
	Result<PageResult> companyPage(Integer pageNum, Integer pageSize, String companyName, String principalName, Integer status);

	/**
	 * 获取餐饮公司信息
	 *
	 * @param companyId 公司id
	 * @return 公司信息
	 */
	Company getCompanyInfo(Long companyId);

	/**
	 * 餐饮公司重置密码
	 *
	 * @param companyId     公司id
	 * @param resetPassword 重置密码
	 * @return 重置密码结果
	 */
	Result companyResetPassword(Long companyId, String resetPassword);

	/**
	 * 餐饮公司状态修改
	 *
	 * @param companyId 公司id
	 * @param status    状态值
	 * @return 状态修改结果
	 */
	Result UpdateCompanyStatus(Long companyId, Integer status);
	
	/**
	 * 餐饮公司删除
	 *
	 * @param companyId 公司id
	 * @return 删除结果
	 */
	Result deleteCompanyById(Long companyId);
	
	/**
	 * 更新餐饮公司绑定的银行账号
	 * @param companyId 餐饮公司id
	 * @param accountId 银行账号id
	 * @return 更新结果
	 */
	Result updateCompanyAccount(Long companyId, Long accountId);
	
	/**
	 * 统计餐饮公司数量
	 *
	 * @return 餐饮公司数量
	 */
	Long countCompanyNum();
}
